// 10.同步 ->将 表单POST请求体数据 单独封装为中间件文件
import queryString from 'querystring'

export default (req, res, next) => {
  // // 18.end---1
  // if (!req.headers['content-length']) {
  //   console.log('进入 body-parse 了')
  //   return next()
  // }
  // // 18.end---2

  // 19.3 如果当前是 get 请求, 则继续往下执行
  if (req.method.toLowerCase() === 'get') {
    return next()
  }

  // 19.4 如果是普通表单POST，则咱们自己处理 application/x-www-form-urlencoded
  // 如果是有 <文件> 的表单POST，则咱们不处理
  // console.log(req.headers)
  if (req.headers['content-type'].startsWith('multipart/form-data')) {
    return next()
  }

  let data = ''
  req.on('data', (chunk) => {
    data += chunk
  })
  req.on('end', () => {
    // console.log(data)
    // 10.1 手动给 req 对象挂载一个 body 属性, 值就是当前表单 POST 请求体对象
    req.body = queryString.parse(data)
    next()
  })
}
